Tsoxa.cpanel = {
	adamo: 1,	// τρέχουσα ομάδα εργαλείων
	omadaMax: 3,	// τελευταία ομάδα
	direction: 1,	// φορά αλλαγής εργαλείων
};

Tsoxa.cpanel.setup = function() {
	Tsoxa.cpanel.DOM = $('<div>').addClass('Vpanel').
	append(Tsoxa.cpanel.enalagiButtonDOM = Tsoxa.panel.enalagiButton(Tsoxa.cpanel)).
	append(Tsoxa.cpanel.metakinisiButtonDOM = Tsoxa.panel.metakinisiButton(Tsoxa.cpanel)).
	append(Tsoxa.panel.arxikiButton(Tsoxa.cpanel, 1)).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// ΟΜΑΔΑ 1
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Panel.emoticon(Tsoxa)).
	append(Panel.gnomiko(Tsoxa)).
	append(Panel.trapeziExodos(Tsoxa)).
	append(Panel.apodoxi(Tsoxa)).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Tsoxa.cpanel.claimButtonDOM = $('<img>').data('omada', 1).attr({
		src: Client.server + 'ikona/panel/pexnidi/claim.png',
		title: 'Δεν χάνω άλλη μπάζα!',
	}).
	data('check', function() {
		var trapezi;

		trapezi = Tsoxa.trapezi;
		if (!trapezi) return false;

		if (Kafenio.egoOxiPektis()) return false;
		if (Debug.flagGet('epomenosCheck') &&
		(Kafenio.egoThesiGet() != trapezi.partidaTzogadorosGet())) return false;

		switch (trapezi.partidaFasiGet()) {
		case 'ΠΑΙΧΝΙΔΙ':
			return true;
		}

		return false;
	}).
	on('click', function(e) {
		var trapezi;

		Tsoxa.inputRefocus(e);
		if (Tsoxa.cpanel.claimButtonDOM.data('akiro')) return;

		trapezi = Tsoxa.trapezi;
		if (!trapezi) return;

		Client.skiserService('claimProtasi').
		done(function(rsp) {
			Kafenio.tsoxa.Client.fyi.epano(rsp);
		}).
		fail(function(err) {
			Kafenio.tsoxa.Client.skiserFail(err);
		});
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append($('<img>').data('omada', 1).attr({
		src: Client.server + 'ikona/panel/pexnidi/akirosiStart.png',
		title: 'Ακύρωση κινήσεων',
	}).
	data('check', function() {
		var trapezi;

		trapezi = Tsoxa.trapezi;
		if (!trapezi) return false;

		if (Kafenio.egoOxiPektis()) return false;

		switch (trapezi.partidaFasiGet()) {
		case 'ΔΗΛΩΣΗ':
		case 'ΑΛΛΑΓΗ':
		case 'ΣΥΜΜΕΤΟΧΗ':
		case 'ΠΑΙΧΝΙΔΙ':
		case 'CLAIM':
			return true;
		}

		return false;
	}).
	on('click', function(e) {
		var trapezi;

		Tsoxa.inputRefocus(e);
		trapezi = Tsoxa.trapezi;
		if (!trapezi) return false;

		Client.skiserService('akirosiStart').
		done(function(rsp) {
			Kafenio.tsoxa.Client.fyi.epano(rsp);
		}).
		fail(function(err) {
			Kafenio.tsoxa.Client.skiserFail(err);
		});
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append($('<img>').data('omada', 1).attr({
		src: Client.server + 'ikona/panel/pexnidi/akirosiStop.png',
		title: 'Λήξη ακυρώσεων',
	}).
	data('check', function() {
		var trapezi = Tsoxa.trapezi;
		if (!trapezi) return false;
		if (Kafenio.egoOxiPektis()) return false;
		return trapezi.trapeziAkirosiGet();
	}).
	on('click', function(e) {
		var trapezi;

		Tsoxa.inputRefocus(e);
		trapezi = Tsoxa.trapezi;
		if (!trapezi) return false;

		Client.skiserService('akirosiStop').
		fail(function(err) {
			Kafenio.tsoxa.Client.skiserFail(err);
		});
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Panel.ananeosiSkinikou(Tsoxa)).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Tsoxa.cpanel.azabButtonDOM = $('<img>').data('omada', 1).
	data('refresh', function(img) {
		if (Tsoxa.flags.azab) img.attr({
			src: Client.server + 'ikona/velos/kampiliKato.gif',
			title: 'Απόκρυψη προηγούμενης μπάζας',
		});
		else img.attr({
			src: Client.server + 'ikona/velos/kampiliPano.gif',
			title: 'Εμφάνιση προηγούμενης μπάζας',
		});
	}).
	on('mouseenter', function() {
		Tsoxa.azabDOM.addClass('tsoxa_azabEmfanis');
	}).
	on('mouseleave', function() {
		Tsoxa.azabDOM.removeClass('tsoxa_azabEmfanis');
	}).
	on('click', function(e) {
		Tsoxa.inputRefocus(e);
		Tsoxa.azabRefreshDOM();
		Tsoxa.flags.azab = !Tsoxa.flags.azab;
		if (Tsoxa.flags.azab) Tsoxa.azabDOM.finish().fadeIn(100);
		else Tsoxa.azabDOM.finish().fadeOut(200);
		Tsoxa.cpanel.refresh();
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Tsoxa.cpanel.filaPrevButtonDOM = $('<img>').data('omada', 1).attr({
		src: Client.server + 'ikona/panel/pexnidi/araxni.png',
		title: 'Επίδειξη προηγούμενης χαρτωσιάς',
	}).
	data('check', function() {
		var trapezi, filaPrev;

		trapezi = Tsoxa.trapezi;
		if (!trapezi) return false;
		if (Kafenio.egoOxiPektis()) return false;
		return true;
	}).
	on('click', function(e) {
		Tsoxa.inputRefocus(e);
		trapezi = Tsoxa.trapezi;
		if (!trapezi) return;
		if (Kafenio.egoOxiPektis()) return;
		Client.skiserService('filaPrev').
		fail(function(err) {
			Client.skiserFail(err);
		});
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Client.paraskinio.epilogiButtonDOM = $('<img>').data('omada', 1).attr({
		src: Client.server + 'ikona/panel/misc/refresh.png',
		title: 'Επαναδιαμόρφωση',
	}).
	on('click', function(e) {
		Tsoxa.inputRefocus(e);
		Tsoxa.refresh = true;
		window.location.reload();
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// ΟΜΑΔΑ 2
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Panel.pektisTheatis(Tsoxa)).
	append(Panel.diataxi(Kafenio)).
	append(Panel.roloi(Kafenio)).
	append(Panel.kasaAlagi(Tsoxa)).
	append(Panel.kasaAfxisi(Tsoxa)).
	append(Panel.kasaMiosi(Tsoxa)).
	append(Panel.asoiNai(Tsoxa)).
	append(Panel.asoiOxi(Tsoxa)).
	append(Panel.pasoNai(Tsoxa)).
	append(Panel.pasoOxi(Tsoxa)).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Client.paraskinio.epilogiButtonDOM = $('<img>').data('omada', 3).attr({
		src: Client.server + 'ikona/panel/misc/paraskinio.png',
		title: 'Αλλαγή παρασκηνίου',
	}).
	on('click', function(e) {
		Tsoxa.inputRefocus(e);
		Client.paraskinio.open();
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Tsoxa.panel.arxikiButton(Tsoxa.cpanel, -1));
	Tsoxa.panel.oplismos(Tsoxa.cpanel);
	Tsoxa.cpanelDOM.empty().append(Tsoxa.cpanel.DOM);

}

Tsoxa.cpanel.metakinisi = function() {
	Tsoxa.cpanel.DOM.
	on('mousedown', function(e) {
		var
		x0 = e.pageX,
		theatesW = Tsoxa.theatesDOM.outerWidth(),
		tsoxaW = Tsoxa.tsoxaDOM.outerWidth(),
		pssW = Tsoxa.pssDOM.outerWidth();

		e.preventDefault();
		e.stopPropagation();

		Tsoxa.sekinisi = true;
		Tsoxa.cpanel.metakinisiButtonDOM.addClass('iconCandi');
		Tsoxa.cpanel.DOM.css('cursor', 'move');
		$(document).off('mousemove mouseup').
		on('mousemove', function(e) {
			var dw, w;

			e.stopPropagation();
			pW = theatesW;

			dw = e.pageX - x0;
			if (dw >= 0) {
				w = pssW - dw;
				if (w < 0) w = 0;
				dw = pssW - w;

				tW = tsoxaW + dw;
				sW = pssW - dw;
			}
			else {
				w = tsoxaW + dw;
				if (w < 0) {
					tW = 0;
					sW = pssW + tsoxaW;
					dw += tsoxaW;

					w = theatesW + dw;
					if (w < 0) {
						pW = 0;
						sW += theatesW;
						dw = theatesW;
					}
					else {
						sW -= dw;
						pW += dw;
					}
				}
				else {
					sW = pssW - dw;
					tW = tsoxaW + dw;
				}
			}

			Tsoxa.theatesDOM.scrollSteno(pW).css('width', pW + 'px');
			Tsoxa.tsoxaDOM.css('width', tW + 'px');
			Tsoxa.pssDOM.children('.pssEnotita').scrollSteno(sW);
			Tsoxa.pssDOM.css('width', sW + 'px');
			Tsoxa.pss.inputWidthFix();
		}).
		on('mouseup', function(e) {
			e.stopPropagation();
			Tsoxa.cpanel.DOM.css('cursor', '');
			$(document).off('mousemove mouseoff');
			Tsoxa.cpanel.metakinisiButtonDOM.removeClass('iconCandi');
			if (Tsoxa.sekinisi) {
				Tsoxa.diastasiSave();
				Tsoxa.sekinisi = false;
			}
		});
	});
}

Tsoxa.cpanel.refresh = function(adamo) {
	if (adamo !== undefined) Tsoxa.cpanel.adamo = adamo;
	Tsoxa.panel.refresh(Tsoxa.cpanel);
}
